#!/usr/bin/env node

const axios = require('axios');

const API_BASE = 'http://localhost:3001';

// 演示数据
const testCases = [
  { name: '张三', birthday: '1990-03-25' }, // 白羊座
  { name: '李四', birthday: '1992-07-15' }, // 巨蟹座
  { name: '王五', birthday: '1988-11-08' }, // 天蝎座
  { name: '赵六', birthday: '1995-01-30' }, // 水瓶座
  { name: '小红', birthday: '1997-09-12' }, // 处女座
];

async function testAPI() {
  console.log('🌟 星座运势查询 API 演示');
  console.log('='.repeat(50));

  try {
    // 测试健康检查
    console.log('\n1. 测试健康检查...');
    const healthResponse = await axios.get(`${API_BASE}/api/health`);
    console.log('✅ 服务器状态:', healthResponse.data.status);
    console.log('⏰ 时间戳:', healthResponse.data.timestamp);

    // 测试星座运势查询
    console.log('\n2. 测试星座运势查询...');
    console.log('-'.repeat(50));

    for (const testCase of testCases) {
      try {
        const response = await axios.post(`${API_BASE}/api/horoscope`, testCase);
        
        if (response.data.success) {
          const { data } = response.data;
          console.log(`\n👤 姓名: ${data.name}`);
          console.log(`🎂 生日: ${data.birthday}`);
          console.log(`⭐ 星座: ${data.zodiacSign}`);
          console.log(`🔮 运势: ${data.fortune}`);
          console.log(`💬 问候: ${data.greeting}`);
          console.log('-'.repeat(30));
        }
      } catch (error) {
        console.error(`❌ 查询 ${testCase.name} 失败:`, error.response?.data?.message || error.message);
      }
    }

    // 测试错误处理
    console.log('\n3. 测试错误处理...');
    try {
      await axios.post(`${API_BASE}/api/horoscope`, { name: '测试用户' }); // 缺少生日
    } catch (error) {
      console.log('✅ 错误处理正常:', error.response.data.message);
    }

    try {
      await axios.post(`${API_BASE}/api/horoscope`, { 
        name: '测试用户', 
        birthday: '无效日期' 
      });
    } catch (error) {
      console.log('✅ 日期验证正常:', error.response.data.message);
    }

    console.log('\n✨ 演示完成！');
    console.log('\n📱 前端界面访问地址: http://localhost:3000');
    
  } catch (error) {
    console.error('❌ API 测试失败:', error.message);
    console.log('\n💡 请确保服务器正在运行：npm run dev');
  }
}

// 如果直接运行此脚本则执行演示
if (require.main === module) {
  testAPI();
}

module.exports = { testAPI }; 